package light.im.loginserver.domain.msg;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import light.im.loginserver.domain.model.Message;

public class MessageStore {

	private Map<String, List<Message>> msgStore = new HashMap<String, List<Message>>();
	
	/**
	 * 缓存消息
	 * @param msg
	 */
	public void bufferMessage(Message msg)
	{
		synchronized (msgStore) {
			List<Message> msgs = msgStore.get(msg.getTo());
			if(msgs==null)
			{
				msgs = new ArrayList<Message>();
				msgStore.put(msg.getTo(), msgs);
			}
			msgs.add(msg);
		}
	}
	/**
	 * 持久化消息
	 * @param msg
	 */
	public void persistMessage(Message msg)
	{
		
	}
	
	
	public List<Message> consumePersistMsgByTarget(String targetId)
	{
		synchronized (msgStore) {
			List<Message> ms = msgStore.get(targetId);
			msgStore.remove(targetId);
			return ms;
		}
	}
	
	public List<Message> consumeBufferMsgByTarget(String targetId)
	{
		synchronized (msgStore) {
			List<Message> ms = msgStore.get(targetId);
			msgStore.remove(targetId);
			return ms;
		}
	}
}
